A typical conventional data processing system includes at least one hard disk drive, one or more central processing units (CPUs), random access memory (RAM), non-volatile solid-state memory such us electrically erasable programmable read only memory (known specifically as EEPROM or, more generally, as ROM), and a backplane that interconnects the above components. When the data processing system is started, the CPU first loads and executes boot code from the ROM. Then, the CPU loads an operating system (OS) from the hard drive into the RAM and begins executing the OS. One or more applications (e.g., a web browser or web server application) may then be copied from the hard drive to the RAM and executed.
However, it is sometimes necessary to alter the normal boot process. For example, some applications for testing and administering computers must be executed before an OS has been loaded. To provide for such circumstances, data processing systems typically also include a floppy disk drive, and instructions from a floppy disk in the floppy drive may be executed instead of loading an OS from the hard drive. The operation of starting from the floppy drive instead of starting from a hard drive is known as “booting from floppy.”
One disadvantage of the above-described architecture, however, is the expense associated with providing the data processing system with both a floppy drive and a hard drive. Another disadvantage is the physical inconvenience associated with using the floppy drive on the data processing system to alter the boot process. For example, when managing servers and other data processing systems in a network that spans great distances, it is inconvenient to travel to the site of each server whenever it becomes necessary to use the alternate boot process for that server.
Furthermore, it is sometimes desirable to minimize the space occupied by a data processing system. For example, when grouping server data processing systems together in server racks, reducing the size of each server makes it possible to increase the number of servers per rack.
Therefore, as recognized by the present invention, conventional data processing systems could benefit from a number of improvements. For instance, it would be helpful to provide a data processing system that could be booted in an alternate boot sequence without requiring an individual to be physically present at the site of that data processing system. Also, it would be beneficial to provide a data processing system without a hard drive that could boot and execute applications that currently require hard drives. It would also be helpful to provide a data processing system that retains most or all of the functionality of a conventional data processing system, despite the absence of a hard drive, an optical disk drive, and/or a floppy drive. It would be even more beneficial if the above capabilities could be provided without requiring any change to existing software, such as OS and Basic Input and Output System (BIOS) software.